package proxy

/**
 *代理模式:
 *为其对象提供一种代理以控制对这个对象的访问
 *
 * 生活中的外卖,代购,代驾都可以理解为一种代理模式
 */
fun main() {
    //静态代理
    val superMarket = SuperMarket()
    val proxy = MarketProxy()
    proxy.setProxyMarket(superMarket)
    proxy.shopping()

    //动态代理
    val shopProxy = DynamicProxy().getMarketProxy()
    shopProxy.shopping()
}